#pragma once

#include <cstdlib>

#include <GL/glew.h>

#include "index_buffer.h"
#include "shader.h"
#include "vertex_array.h"

#define ASSERT(x) if (!(x)) { exit(0); }
#define GLCALL(x) GLClearError(); x; ASSERT(GLLogCall(#x, __FILE__, __LINE__));

void GLClearError();
bool GLLogCall(const char* call, const char* file, int32_t line);

class Renderer {
public:
    void Clear();
    void Draw(const VertexArray &va, const IndexBuffer &ib, const Shader& shader);

private:
};
